// index.js
Page({
  data:{
    navActive:1,     // 绑定当前顶部导航激活项的ID
    movies:[],    // 绑定当前电影列表
    cityname:'未选择',  //绑定城市名称
  },

  /**
   * 通过cid与offset查询电影列表
   * @param {number} cid 类别IC参数
   * @param {number} offset 开始查询的起始位置参数
   * @return 返回20条记录
  */
  loadMovies(cid,offset){
    return new Promise((resolve,reject)=>{
       // 弹窗
       wx.showLoading({
        title: '加载中...',
        mask: true
      })
      wx.request({
        url: 'https://api.tedu.cn/index.php',
        method:'GET',
        data:{cid,offset},
        success:(res)=>{
          resolve(res.data) //将movieList返回给Promise的接收者
        },
        fail:(err)=>{
          reject(err)
        },
        complete: ()=>{ wx.hideLoading() }
      })
    })
  },

  // 当点击顶部导航选中项时执行
  tapNav(event){
    let id = event.target.dataset.id
    this.setData({navActive:id})
    // 先去缓存找有没有缓存当前类别的首页电影数据
    wx.getStorage({
      key:id,
      success:(res=>{
        console.log('从缓存中拿到',res)
        this.setData({movies:res.data})
      }),
      fail:(err)=>{
        console.log('没有从缓存中找到数据')
      }
    })
    // 发送请求，访问相应id的电影列表数据
    // wx.request({
    //   url: 'https://api.tedu.cn/index.php',
    //   method: 'GET',
    //   data: {cid: id, offset: 0},
    //   success: (res)=>{
    //     console.log(`加载${id}类别的列表：`, res)
    //     this.setData({movies: res.data})
    //   }
    // })
    this.loadMovies(id,0).then(movieList=>{
      this.setData({movies:movieList})
      // 将结果存到小程序缓存
      wx.setStorage({
        key: id,
        data: movieList
      })
    })
  },

  /** 当首页加载时执行 **/ 
  onLoad(){
    // 加载热映类别下的电影列表
    // wx.request({
    //   url: 'https://api.tedu.cn/index.php',
    //   method: 'GET',
    //   data: {cid:1, offset:0},
    //   success: (res)=>{
    //     console.log('加载首页热映电影列表', res)
    //     this.setData({movies: res.data})
    //   },
    //   fail: (err)=>{
    //    reject(err)
    //   }
    // })
    this.loadMovies(1,0).then(movieList=>{
      this.setData({movies:movieList})
    })
  },

  onShow(){
    let cityname = getApp().globalData.cityname
    this.setData({cityname})
  },

  /* 当下拉刷新时触发 */
  onPullDownRefresh(){
    // console.log('下拉刷新...')
    // 加载当前类别下的首页电影数据，更新列表，更新缓存
    let cid =this.data.navActive
    this.loadMovies(cid,0).then(movieList=>{
      console.log('下拉刷新数据',movieList)
      // 更新列表
      this.setData({movies: movieList})
      // 更新缓存
      wx.setStorage({key:cid+"", data:movieList})
      // 停止下拉刷新
      wx.stopPullDownRefresh()
    })
  },

  /* 监听触底事件  */
  onReachBottom(){
    let cid = this.data.navActive
    let offset = this.data.movies.length
    console.log('滚到底了！')
    // wx.request({
    //   url: 'https://api.tedu.cn/index.php',
    //   method:'GET',
    //   data:{cid,offset},
    //   success:(res)=>{
    //     this.data.movies.push(...res.data)
    //     this.setData({movies:this.data.movies})
    //   },
    //   fail:(err)=>{
    //     reject(err)
    //   }
    // })
    this.loadMovies(cid,offset).then(movieList=>{
      this.data.movies.push(...movieList)
      this.setData({movies:this.data.movies})
    })
  }, 
  getLocation(){

    // wx.getLocation({
    //   type: 'gcj02',
    //   altitude: 'true',
    //   isHighAccuracy: true,
    //   success: (res) => {console.log('获取位置信息',res)},
    // })

    // 封装前
    // let QQMapWX = require('../../libs/qqmap-wx-jssdk.js');
    // let qqmapsdk=new QQMapWX({
    //   key:"HDLBZ-I5QCU-FKWVB-43MEA-A72WT-IXB4K"
    // })
    
    // 逆地理编码返回当前坐标的字符串详细描述
    getApp().globalData.qqmapsdk.reverseGeocoder({
      success:(res)=>{
        console.log('逆地理编码：',res)
        let cityname=res.result.address_component.city
        this.setData({cityname})
        // 将cityname存入globalData
        getApp().globalData.cityname=cityname
      },
      fail:(err)=>{
        console.warn(err)
      }
    })
  },
})
